בזמן האחרון Composer - כלי הטעינה האוטומטית, הפך פופולארי יותר ויותר.
עם זאת, Composer מאפשר לנו להוריד ספריות מהאינטרנט, לעדכן אותם בכל פעם שיוצאת גרסה חדשה, לעבוד איתם בצורה נוחה יותר ולשלב אותם בקוד כחלק ממנו.
Composer גם מביא לנו כלי לטעינה אוטומטית של מחלקות בפרוייקט שלנו ללא שימוש ב- include או require.
אז, איך משתמשים ב- Composer? מיד נגלה.
יצא לכם פעם לעבוד עם ספריות? לעצלנים שבינינו, אני מבין עד כמה מעצבן זה להוריד את הספריה מחדש בכל פעם שיוצאת גרסה חדשה;
אבל מה אם אני יגיד לכם שיש לכם אפשרות לעשות זאת בצורה אוטומטית?
ויותר מכך, לטעון את כל המחלקות בפרוייקט שלכם ללא שימוש ב- include, require או כל פונקציית יבוא אחרת!
התקנה
ראשית, על מנת שנוכל לעבוד עם Composer, כמובן שנצטרך להוריד ולהתקין אותו במחשב כי במידה ולא,
גם אם נצפה לטעינה האוטומטית בקוצר רוח, היא ככל הנראה לא תפעל.
את Composer ניתן להוריד מהאתר הראשי שלו: https://getcomposer.org או שפשוט לחצו כאן כדי לעבור להורדה ישירה של Compoer בגרסה מעודכנת ביותר למערכת ההפעלה Windows.
בכדי להתקין על מערכת ההפעלה Linux או על השרת שלכם, קראו את ההוראות באתר Composer.
לאחר שהורדתם את Composer, לחצו על קובץ ההתקנה והתחילו להתקין.
מעבר לזה, אני מניח שאני לא צריך להסביר לכם איך להתקין ואפשר להתחיל לחגוג. להביא פיצה?
רק דבר אחד חשוב, באחד השלבים בהתקנה יהיה עליכם לבחור האם ברצונכם להתקין Shell Menus יחד עם ה- Composer,
התקנת Shell Menus מקנה לכם גישה מהירה יותר מתקיית הפרוייקט אל שורת הפקודה של Composer. *מומלץ*
עבודה עם Composer
הורדנו והתקנו Composer, הבנו שמומלץ להתקין גם Shell Menus של Composer והכל בסדר גמור עד כאן (ואם עדיין לא, כנראה שתצטרך לחזור לכיתה ג').
התקנת Composer בתקיית הפרוייקט שלנו
תהליך התקנת Composer בפרוייקט שלנו הינו תהליך פשוט במיוחד, אך באותה מידה גם חשוב.
במידה והתקנתם את Shell Menus יחד עם Composer, נכנס לתקיית הפרוייקט, נלחץ מקש ימני בעכבר ואז על Composer init ותפתח לנו שורת הפקודה; במידה ולא התקנתם Shell Menus, עקבו אחר ההוראות הבאות:
1. פתחו את שורת הפקודה של מערכת ההפעלה (CMD/DOS).
2. כתבו "cd" ולאחריו הנתיב המדוייק לתקיית הפרוייקט (לדוגמה: "cd C:/wamp/www/myProject").
3. לאחר מכן, כתבו "composer init".
לאחר שלחצתם/כתבתם "composer init", חלון הפקודה ירשום לכם כך:
Package name (<vendor>/<name>): [vagrant/oop]
בעצם, הוא מבקש ממכם לרשום את שם החברה או את שמכם הפרטי במקום <vendor> ואת שם הפרוייקט במקום <name>.זה אומר, שבמידה ואני ירצה ליצור פרוייקט בשם "myProject", אצטרך לרשום לשורת הפקודה כך:
ArielTador/myProject
קודם רשמתי את שמי ואת שם המשפחה שלי, ולאחר הסלאש כתבתי את שם הפרוייקט שלי.מיד לאחר שכתבתם את שמכם ואת שם הפרוייקט שלכם, שורת הפקודה של Composer תבקש ממכם לרשום את תיאור הפרוייקט כך:
Description[]:
אין צורך להסביר על התיאור יותר מדיי, בסך-הכל לרשום את תיאור הפרוייקט שלכם.אחרי שרשמתם את התיאור, שורת הפקודה תבקש ממנו לרשום את שם המפתח או את שם מתקין ה- Composer בצורה הבאה:
Author[]:
אני לדוגמה יצטרך לרשום: Ariel Tador <myMail@mail.com>
שימו לב שרשמתי את "המייל שלי", Composer מקבל את המייל שרשום בתוך <> ומוסיף אותו לרשימת הפרטים של הפרוייקט שלנו.עכשיו שורת הפקודה מבקשת ממנו משהו מעניין, לכתוב את מצב או "סטטוס" הפרוייקט שלנו כך:
Minimum Stability[]:
בעצם, אנחנו נצטרך לכתוב באיזה שלב בבניית הפרוייקט אנחנו נמצאים, הנה רשימת השלבים הניתנים לכתיבה:
dev = הפרוייקט נמצא בבנייה.
alpha = הפרוייקט נמצא בשלב אלפא(בדיקות על ידי מתכנתים וטסטרים).
beta = הפרוייקט נמצא נמצא בשלב בטא(הספרייה/הפרוייקט עלה ונבדקת על ידי משתמשים אמיתיים).
stable = הפרוייקט גמור ומוכן לשימוש.
alpha = הפרוייקט נמצא בשלב אלפא(בדיקות על ידי מתכנתים וטסטרים).
beta = הפרוייקט נמצא נמצא בשלב בטא(הספרייה/הפרוייקט עלה ונבדקת על ידי משתמשים אמיתיים).
stable = הפרוייקט גמור ומוכן לשימוש.
לאחר שכתבתם באיזה מצב נמצא הפרוייקט שלכם, שורת הפקודה תבקש ממכם לרשום את רישיון הפרוייקט כך:
License[]:
זה לא חשוב - לא צריך לרשום כלום, פשוט ללחוץ אנטר ולהמשיך.עכשיו שורת הפקודה של Composer שואלת אותנו האם אנחנו מעוניינים להתקין כבר מעכשיו את ה-"תלויים" שלנו, כך:
Would you like defende your dependencies (require) interactively? [yes]
בהמשך אנחנו נבין מה הם "תלויים", אך כעת נרשום "no" ונדלג על השלב הזה ועל השלב שבא אחריו שבו בעצם שורת הפקודה שואלת אותנו האם אנחנו רוצים להתקין את התלויים של הפיתוח.עכשיו שורת הפקודה מציגה לנו את קובץ composer.json שלנו, אותו יצרנו במהלך כתיבת הפקודות בשורת הפקודה של Composer.
קובץ ה- composer.json הינו הקובץ המכיל את כל ההגדרות של הפרוייקט שלנו ואת התלויים שלנו;
שורת הפקודה שואלת האם הפרטים בקובץ composer.json שמוצג הינם נכונים.
במידה והקובץ composer.json נראה טוב בשורת הפקודה, והמאפיינים בו הינם נכונים - נרשום "yes".
בתקיית הפרוייקט שלנו נוצר קובץ בשם composer.json שהוא בעצם מכיל את פרטי הפרוייקט שלנו;
מלבד זאת, נוצרה תקייה חדשה בשם vendor ובתוכה קובץ בשם autoloader.php ותקייה נוספת בשם composer המכילה מחלקות מיוחדות של ה-composer.
תלויים = ספריות
הכלי Composer מאפשר לנו להוריד ספריות מהאינטרנט ולעדכן אותם בצורה אוטומטית.
מפתחי Composer הביאו לנו אתר נוסף, בו ניתן לחפש ספריות לשילוב בקוד שלנו;
את האתר ניתן למצוא בכתובת הבאה: https://packagist.org וכבר עכשיו אתם מוזמנים לחפש ספריות.
הספריות שאנו מורידים על-ידי Composer נשמרות בתקייה vendor בעוד הם בתקייה עם שם המחלקה.
אם נפתח את הקובץ composer.json, אנחנו נראה את הקוד שהיה רשום לנו בשורת הפקודה כשהתקנו את composer על הפרוייקט שלנו.
רואים את "require": {}" בקובץ composer.json? שם אנו נכניס את הספריות שאנו רוצים להשתמש בהם, כן זה כזה פשוט.
לצורך הדוגמה אני יראה לכם כיצד להכניס ספריות אל "require": {}", עושים זאת כך:
"require": {
"vendor/name",
"PHPguide/composer"
}
בעוד vendor הוא שם המפתח/החברה שפיתחו את הספרייה, ו- name הוא שם הספרייה."vendor/name",
"PHPguide/composer"
}
מיד לאחר מכן, נכנס שוב פעם אל שורת הפקודה של Composer, ניגש אל תקיית הפרוייקט באמצעות "cd" ונרשום: "composer update";
הפקודה הזו, לוקחת את הספריות שרשמנו בקובץ composer.json ומורידה אותם לתקייה vendor. במידה וישנם ספריות שהורדנו כבר, הפקודה הזו מורידה את הגרסה העדכנית ביותר לאותן ספריות!
הטוען האוטומטי של Composer
אם אתם יודעים כבר לעבוד עם תכנות מונחה עצמים, לעבוד עם namespace ועם מחלקות - אני הולך להסביר כאן משהו שיקל עליכם מאוד את העבודה.
תארו לכם שייבוא מחלקות וספריות אל תוך הקוד שלנו היה כל כך פשוט, עד כדי כך שנוכל לגשת אל מחלקה בשם myClass שנמצאת בתקייה example בצורה הבאה:
$myClass = new \myProject\example\myclass();
וללא שימוש בפונקציות ייבוא כגון include ו- require;מעכשיו - אנחנו יכולים לעשות זאת באמצעות הטוען האוטומטי של Composer!
Composer מביא לנו כלי בשם autoloader(טוען אוטומטי) שאיתו ניתן לגשת למחלקות אחרות ולספריות שונות ללא שימוש בפונקציות include או require!
זוכרים את הקובץ autoloader.php בתקייה vendor שנוצר בעת כתיבת הפקודה "composer update"?
בואו נייבא אותו אל הקובץ הראשי של הפרוייקט שלנו ונתחיל להשתמש בו, כך:
myProject/index.php:
$loader = require __DIR__ . "vendor/autoloader.php";
$loader->add("myProject", __DIR__ . '/../');
$loader->register();
$loader->add("myProject", __DIR__ . '/../');
$loader->register();
מה עשינו כאן?
1. ראשית, עשינו ייבוא לקובץ autoloader.php של Composer.
2. אנחנו משתמשים בפונקצייה add, הפרמטר הראשון הוא שם ה- namespace הראשי שלנו, במקרה של פרוייקט הדוגמה שלי הוא myProject;
*. בפרמטר השני, הכנסנו את הנתיב לתקייה בה נמצא הפרוייקט שלנו, לדוגמה: אם הפרוייקט שלנו נמצא בנתיב הבא: "C:\wamp\www\myProject",
*. הנתיב שהכנסנו בפרמטר היה "C:\wamp\www", בכדי שנוכל לקרוא למחלקה שלנו על-פי סדר התקיות שלנו.
3. רשמנו את הטוען האוטומטי באמצעות הפקודה register.
בשביל הספורט, בואו ניצור מחלקה בשם myClass בתוך תקייה בשם example בפרוייקט שלנו, ונסה לגשת אליה בלי לייבא אותה באמצעות include או require בצורה הבאה:
$myClass = \myProject\example\myClass();
מגניב נכון?שימוש בספריות שהורדנו עם Composer
לפי דעתי, הדבר הכי יפה ב- Composer הוא שאפשר להשתמש בספריות בצורה הכי פשוטה שיש, כאילו הם חלק רגיל חלוטין מקוד הפרוייקט!
כעת אתן לכם דוגמה לשימוש בספריות שהורדנו עם Composer, נניח שהורדנו ספרייה בשם example, נוכל לגשת אליה ואל המתודות שלה כך:
$library = new \example\libraryClass();
כן, כן! פשוט מאוד, במקום שם ה- namespace הראשי של הפרוייקט שלנו, אנחנו רושמים את שם הספרייה, ומשם ניתן לגשת לכל המחלקות בספרייה.סיום
קודם כל, כל הכבוד על כך שסיימת את המדריך הזה! אם לא הבנת משהו, כדאי מאוד לחזור ולקרוא כי Composer זה אחד הכלים שיכולים לעזור לך ולפרוייקט שלך הכי הרבה. אשמח במידה ותפרגן לי בתגובה נחמדה וגם אם היא שלילית, אשמח לשמוע מה היה שלא בסדר במדריך שלי ואנסה לתקן זאת.
אגב, איך הייתה הפיצה?
תגובות לכתבה:
מדריך מעולה, וגם הפיצה. תודה :)
תודה על המדריך ! :)
תודה :-)
היי
עם אני עובד על המחשב עם composer ובסיום אני רוצה לעלות את הקבצים לשרת אחסון העם גם על השרת אחסון צריך להתקין composer לפני ?
לא. מספיק שתבצע התקנה של הספריות (תפעיל את קומפוזר) על המחשב שלך
ולאחר מכן תעלה את כל הקבצים, כולל אלו שנוספו בסיום תהליך ההרצה, לשרת.